
public class Test {

    /*
    * 运算符和逻辑运算
    * + - * /
    *
    * 增量运算符
    * +=、-=、*=、%= 可以自动进行类型转换
    *
    * 自增减运算符
    * ++ --  后置  先用后加   前置 先加后用
    *  关系运算符
    * == > >= < <= !=  值为true/false  不能连着写如
    *逻辑运算符
    *&& 并且 或者 逻辑与 短路与 布尔表达式
    *|| 逻辑或
    *! 逻辑非
    *位运算符
    * & 按位与   对应位都是1 结果是1
    * ^ 按位异或  只要对应位不一样 结果位1
    * | 按位或    只要对应位有1 结果位1
    * ~ 按位取反  把1变为0 0变为1
    *
    * 移位运算符
    * <<  左移 符号位不变 低位补零 相当于*2
    * >>  右移 符号位不变 高位补零 相当于/2
    * >>> 无符号右移 二进制 高位补零
    *
    * 条件运算符
    * 三目运算符 ? :
    *
    *
    * */

    public static void main7(String[] args) {
        boolean flg = true ? false :true == true ? true : false;
        boolean flg2 = false ? false :true == true ? true : false;
        System.out.println(flg);//false
        System.out.println(flg2);//true
    }
    public static void main6(String[] args) {
        int a = 8;//0000000000001000 32位省略
        int b = -1;//1000000000000001 1111111111111110 1111111111111111
        System.out.println(a<<1);//0000000000010000 16
        System.out.println(a>>1);//0000000000000100 4
        System.out.println(b>>1);//负数 补码全是1 还是-1
        System.out.println(b>>>1);//补码 01111111111111
    }

    public static void main5(String[] args) {

        int a = 9;// 0000000000001001
        int b = 12;//0000000000001100
        System.out.println(a & b);//1000 8
        System.out.println(a | b);//1101 13
        System.out.println(a ^ b);//0101 5
        System.out.println(~b);//111111111111110011 11111111110100 10000000001011
    }

    public static void main4(String[] args) {

        short s1 = 10;
       // s1 = s1 + 1; //报错
        s1+=1;
        System.out.println(s1);
    }
    public static void main3(String[] args) {
        System.out.println(11.5%2.0);//1.5
        System.out.println(11.5%2);
    }

    public static void main2(String[] args) {
        System.out.println(10%3);//1
        System.out.println(10%-3);//1
        System.out.println(-10%3);//-1
        System.out.println(-10%-3);//-1

    }
    public static void main1(String[] args) {
        System.out.println(5/2);//2
        System.out.println((float)5/2);//2.5
       // System.out.println(5/0);//异常
    }
}
